package com.hunttown.mes.rpc.domain.enums.pay;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 资金操作类型
 * <p>
 * created by wangjunfu on 2019/08/19
 */
public enum RechargeTypeEnum {
    RECHARGE(1, "充值"),      //+ 收入
    CONSUMPTION(2, "消费"),   //- 支出
    ADDOIL(3, "油费"),        //- 支出
    DEDUCTION(11, "扣款"),    //- 支出
    BOOKCAR(12, "订车费"),    //+ 收入
    RIDECAR(13, "乘车费"),    //+ 收入
    LIFE(21, "生活缴费"),     //+ 收入
    IRRIGATION(22, "灌溉费"), //+ 收入
    STATISTIC(40, "统计数据");//浙商城使用，统计数据不计入财务。

    private final int key;
    private final String value;

    RechargeTypeEnum(int key, String value) {
        this.key = key;
        this.value = value;
    }

    // 根据key获取枚举
    public static String getEnumByKey(int key) {
        String value = "";

        for (RechargeTypeEnum temp : RechargeTypeEnum.values()) {
            if (temp.getKey() == key) {
                value = temp.getValue();
            }
        }

        return value;
    }

    // 将枚举组成Map
    public static Map<Integer, String> getEnumList() {
        Map<Integer, String> map = new HashMap<>();

        for (RechargeTypeEnum temp : RechargeTypeEnum.values()) {
            map.put(temp.getKey(), temp.getValue());
        }

        return map;
    }

    // 将枚举组成Map（因为枚举是公用的，所以不同项目选择的不一样）
    public static Map<Integer, String> getEnumList(List<Integer> keys) {
        Map<Integer, String> map = new HashMap<>();

        for (RechargeTypeEnum temp : RechargeTypeEnum.values()) {
            if (keys.contains(temp.getKey())) {
                map.put(temp.getKey(), temp.getValue());
            }
        }

        return map;
    }

    public int getKey() {
        return key;
    }

    public String getValue() {
        return value;
    }
}
